﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DTO
{
    /// <summary>
    /// Class Chi tiết báo cáo công nợ
    /// </summary>
    public class BaoCaoCongNo_DTO
    {
        public string MaBaoCao { get; set; }

        public DateTime NgayBaoCao { get; set; }

        public BaoCaoCongNo_DTO(string ma, DateTime _ngayBaoCao)
        {
            MaBaoCao = ma;
            NgayBaoCao = _ngayBaoCao;
        }
    }

    /// <summary>
    /// Class Chi tiết báo cáo tồn
    /// </summary>
    public class BaoCaoTon_DTO :ISoThuTu
    {
        public string MaBaoCao { get; set; }

        public DateTime NgayBaoCao { get; set; }

        public BaoCaoTon_DTO(string ma, DateTime _ngaybaocao)
        {
            MaBaoCao = ma;
            NgayBaoCao = _ngaybaocao;
        }
    }

    /// <summary>
    /// Class Chi tiết Phiếu thu
    /// </summary>
    public class ChiTietPhieuChi_DTO
    {
        public string MaChiTietPhieu { get; set; }

        public string MaPhieuChi { get; set; }

        public string MaPhi { get; set; }

        public long ThanhTien { get; set; }

        public ChiTietPhieuChi_DTO(string mactpc, string mapc, string maphi, long tien)
        {
            MaChiTietPhieu = mactpc;
            MaPhieuChi = mapc;
            MaPhi = maphi;
            ThanhTien = tien;
        }
    }

    /// <summary>
    /// Class Chi tiết Phiếu Dịch vụ
    /// </summary>
    public class ChiTietPhieuDV_DTO
    {
        public string MaChiTietPhieu { get; set; }

        public string MaPhieuDV { get; set; }

        public string MaDV { get; set; }

        public int SoLuong { get; set; }

        public long DonGia { get; set; }

        public ChiTietPhieuDV_DTO(string mactp, string mapdv, string madv, int sl, long dongia)
        {
            MaChiTietPhieu = mactp;
            MaPhieuDV = mapdv;
            MaDV = madv;
            SoLuong = sl;
            DonGia = dongia;
        }
    }

    /// <summary>
    /// Class Chi tiết Phiếu mua hàng
    /// </summary>
    public class ChiTietPhieuMua_DTO
    {
        public string MaChiTietPhieu { get; set; }

        public string MaPhieuMua { get; set; }

        public string MaSanPham { get; set; }

        public int SoLuong { get; set; }

        public long DonGia { get; set; }

        public ChiTietPhieuMua_DTO(string mactp, string mapm, string masp, int sl, long dongia)
        {
            MaChiTietPhieu = mactp;
            MaPhieuMua = mapm;
            MaSanPham = masp;
            SoLuong = sl;
            DonGia = dongia;
        }
    }

    /// <summary>
    /// Class Chi tiết Báo cáo công nợ
    /// </summary>
    public class ChiTietBCCongNo_DTO :ISoThuTu
    {
        public string MaChiTietBCCongNo { get; set; }

        public string MaBaoCao { get; set; }

        public string MaPhieuNo { get; set; }

        public long TienNo { get; set; }

        public ChiTietBCCongNo_DTO(string mactbccn, string mabc, string mapn, long tienno)
        {
            MaChiTietBCCongNo = mactbccn;
            MaBaoCao = mabc;
            MaPhieuNo = mapn;
            TienNo = tienno;
        }
    }

    /// <summary>
    /// Class Chi tiết Báo cáo tồn
    /// </summary>
    public class ChiTietBCTon_DTO : ISoThuTu
    {
        public string MaChiTietBCTon { get; set; }

        public string MaBaoCao { get; set; }

        public string MaSanPham { get; set; }

        public int TonDau { get; set; }

        public int PhatSinh { get; set; }

        public int TonCuoi { get; set; }

        public int SoLuongBan { get; set; }

        public int SoLuongMua { get; set; }

        public ChiTietBCTon_DTO(string mactbcton, string mabc, string masp, int tondau, int phatsinh,
            int toncuoi, int slban, int slmua)
        {
            MaChiTietBCTon = mactbcton;
            MaBaoCao = mabc;
            MaSanPham = masp;
            TonDau = tondau;
            PhatSinh = phatsinh;
            TonCuoi = toncuoi;
            SoLuongBan = slban;
            SoLuongMua = slmua;
        }
    }

    /// <summary>
    /// Class Chi tiết Phiếu bán hàng
    /// </summary>
    public class ChiTietPhieuBanHang_DTO
    {
        public string MaChiTietPhieuBanHang { get; set; }

        public string MaSanPham { get; set; }

        public string MaPhieuBanHang { get; set; }

        public int SoLuong { get; set; }

        public long DonGia { get; set; }

        public ChiTietPhieuBanHang_DTO(string mactpbh, string mapbh, string masp, int sl, long dongia)
        {
            MaChiTietPhieuBanHang = mactpbh;
            MaPhieuBanHang = mapbh;
            MaSanPham = masp;
            SoLuong = sl;
            DonGia = dongia;
        }
    }

    /// <summary>
    /// Class Chi tiết Phiếu gia công
    /// </summary>
    public class ChiTietPhieuGiaCong_DTO
    {
        public string MaChiTietPhieuGC { get; set; }

        public string MaPhieuGC { get; set; }

        public string MaHangGC { get; set; }

        public int SoLuong { get; set; }

        public long DonGia { get; set; }

        public ChiTietPhieuGiaCong_DTO(string mactpgc, string mapgc, string mahgc, int sl, long dongia)
        {
            MaChiTietPhieuGC = mactpgc;
            MaPhieuGC = mapgc;
            MaHangGC = mahgc;
            SoLuong = sl;
            DonGia = dongia;
        }
    }

    /// <summary>
    /// Class Dịch vụ
    /// </summary>
    public class DichVu_DTO : ISoThuTu
    {
        public string MaDichVu { get; set; }

        public string TenDichVu { get; set; }

        public long DonGia { get; set; }

        public int SoLuong { get; set; }

        public long ThanhTien { get; set; }

        public DichVu_DTO(string madv, string tendv, long dongia)
        {
            MaDichVu = madv;
            TenDichVu = tendv;
            DonGia = dongia;
        }
    }

    /// <summary>
    /// Class Hàng gia công
    /// </summary>
    public class HangGiaCong_DTO :ISoThuTu
    {
        public string MaHangGC { get; set; }

        public string TenHangGC { get; set; }

        public long DonGia { get; set; }

        public int SoLuong { get; set; }

        public long ThanhTien { get; set; }

        public HangGiaCong_DTO(string mahgc, string tenhgc, long dongia)
        {
            MaHangGC = mahgc;
            TenHangGC = tenhgc;
            DonGia = dongia;
        }

        public HangGiaCong_DTO(string mahgc, string tenhgc, long dongia,int soluong, long thanhtien)
        {
            MaHangGC = mahgc;
            TenHangGC = tenhgc;
            DonGia = dongia;
            SoLuong = soluong;
            ThanhTien = thanhtien;
        }
    }

    /// <summary>
    /// Class Khách hàng
    /// </summary>
    public class KhachHang_DTO : ISoThuTu
    {
        public string MaKhachHang { get; set; }

        public string TenKhachHang { get; set; }

        public string DiaChi { get; set; }

        public bool ThanThiet { get; set; }

        public string LoaiKhachHang { get; set; }

        public KhachHang_DTO(string makh, string tenkh, string diachi, bool thanThiet)
        {
            MaKhachHang = makh;
            TenKhachHang = tenkh;
            DiaChi = diachi;
            ThanThiet = thanThiet;
        }
    }

    /// <summary>
    /// Class Loại sản phẩm
    /// </summary>
    public class LoaiSanPham_DTO :ISoThuTu
    {
        public string MaLoaiSanPham { get; set; }

        public string TenLoaiSanPham { get; set; }

        public LoaiSanPham_DTO(string masp, string tensp)
        {
            MaLoaiSanPham = masp;
            TenLoaiSanPham = tensp;
        }
    }

    /// <summary>
    /// Class Phí
    /// </summary>
    public class Phi_DTO : ISoThuTu
    {
        public string MaPhi { get; set; }

        public string TenPhi { get; set; }

        public long ThanhTien { get; set; }

        public Phi_DTO(string maphi, string tenphi)
        {
            MaPhi = maphi;
            TenPhi = tenphi;
        }

        public Phi_DTO(string maphi, string tenphi,long thanhTien)
        {
            MaPhi = maphi;
            TenPhi = tenphi;
            ThanhTien = thanhTien;
        }
    }

    /// <summary>
    /// Class Phiếu Bán Hàng
    /// </summary>
    public class PhieuBanHang_DTO : ISoThuTu
    {
        public string MaPhieuBanHang { get; set; }

        public DateTime NgayBan { get; set; }

        public DateTime NgayThanhToan { get; set; }

        public string MaKhachHang { get; set; }

        public long TongTien { get; set; }

        public PhieuBanHang_DTO(string mapbh, int ngayBanDD, int ngayBanMM, int ngaybanYYYY,
            int ngayttDD, int ngayttMM, int ngayttYYYY, string makh, long tongtien)
        {
            MaPhieuBanHang = mapbh;
            NgayBan = new DateTime(ngaybanYYYY, ngayBanMM, ngayBanDD);
            NgayThanhToan = new DateTime(ngayttYYYY, ngayttMM, ngayttDD);
            MaKhachHang = makh;
            TongTien = tongtien;
        }

        public PhieuBanHang_DTO(string mapbh, DateTime ngayBan,
            DateTime ngayThanhToan, string makh, long tongtien)
        {
            MaPhieuBanHang = mapbh;
            NgayBan = ngayBan;
            NgayThanhToan = ngayThanhToan;
            MaKhachHang = makh;
            TongTien = tongtien;
        }
    }

    /// <summary>
    /// Class Phiếu chi
    /// </summary>
    public class PhieuChi_DTO :ISoThuTu
    {
        public string MaPhieuChi { get; set; }

        public DateTime NgayChi { get; set; }

        public long TongTien { get; set; }

        public PhieuChi_DTO(string mapc, DateTime _ngayChi, long tongtien)
        {
            MaPhieuChi = mapc;
            NgayChi = _ngayChi;
            TongTien = tongtien;
        }
    }

    /// <summary>
    /// Class Phiếu dịch vụ
    /// </summary>
    public class PhieuDichVu_DTO
    {
        public string MaPhieuDV { get; set; }

        public DateTime NgayDangKi { get; set; }

        public DateTime NgayGiao { get; set; }

        public string MaKhachHang { get; set; }

        public long TongTien { get; set; }

        public PhieuDichVu_DTO(string mapdv, int ngayDkYYYY, int ngayDKMM, int ngayDkDD,
            int ngayGiaoYYYY, int ngayGiaoMM, int ngayGiaoDD, string makh, long tongtien)
        {
            MaPhieuDV = mapdv;
            NgayDangKi = new DateTime(ngayDkYYYY, ngayDKMM, ngayDkDD);
            NgayGiao = new DateTime(ngayGiaoYYYY, ngayGiaoMM, ngayGiaoDD);
            MaKhachHang = makh;
            TongTien = tongtien;
        }
    }

    /// <summary>
    /// Class Phiếu gia công
    /// </summary>
    public class PhieuGiaCong_DTO : ISoThuTu
    {
        public string MaPhieuGC { get; set; }

        public DateTime NgayNhanGC { get; set; }

        public DateTime NgayNhanHang { get; set; }

        public DateTime NgayThanhToan { get; set; }

        public long TongTien { get; set; }

        public string MaTho { get; set; }

        public PhieuGiaCong_DTO(string mapgc, DateTime ngNhanGC,DateTime ngNhanhang,DateTime ngThanhToan ,long tongtien, string matho)
        {
            MaPhieuGC = mapgc;
            NgayNhanGC = ngNhanGC;
            NgayNhanHang = ngNhanhang;
            NgayThanhToan = ngThanhToan;
            TongTien = tongtien;
            MaTho = matho;
        }
    }

    /// <summary>
    /// Class Phiếu mua
    /// </summary>
    public class PhieuMua_DTO
    {
        public string MaPhieuMua { get; set; }

        public DateTime NgayMua { get; set; }

        public DateTime NgayThanhToan { get; set; }

        public string MaKhachHang { get; set; }

        public long TongTien { get; set; }

        public PhieuMua_DTO(string mapm, int ngMuaYYYY, int ngMuaMM, int ngMuaDD,
            int ngTtYYYY, int ngTtMM, int ngTtDD, string makh, long tongtien)
        {
            MaPhieuMua = mapm;
            NgayMua = new DateTime(ngMuaYYYY, ngMuaMM, ngMuaDD);
            NgayThanhToan = new DateTime(ngTtYYYY, ngTtMM, ngTtDD);
            MaKhachHang = makh;
            TongTien = tongtien;
        }
    }

    /// <summary>
    /// Class Phiếu Nợ
    /// </summary>
    public class PhieuNo_DTO : ISoThuTu
    {
        public string MaPhieuNo { get; set; }

        public string MaPhieuBanHang { get; set; }

        public DateTime NgayNo { get; set; }

        public DateTime NgayTra { get; set; }

        public long SoTienNo { get; set; }

        public long SoTienTra { get; set; }

        public long ConLai { get; set; }

        public PhieuNo_DTO(string mapn, string mapbh, int ngNoYYYY, int ngNoMM, int ngNoDD,
            int ngTraYYYY, int ngTraMM, int ngTraDD, long tienNo, long tienTra, long conlai)
        {
            MaPhieuNo = mapn;
            MaPhieuBanHang = mapbh;
            NgayNo = new DateTime(ngNoYYYY, ngNoMM, ngNoDD);
            NgayTra = new DateTime(ngTraYYYY, ngTraMM, ngTraDD);
            SoTienNo = tienNo;
            SoTienTra = tienTra;
            ConLai = conlai;
        }

        public PhieuNo_DTO(string mapn, string mapbh, DateTime ngNo,
            DateTime ngTra, long tienNo, long tienTra, long conlai)
        {
            MaPhieuNo = mapn;
            MaPhieuBanHang = mapbh;
            NgayNo = ngNo;
            NgayTra = ngTra;
            SoTienNo = tienNo;
            SoTienTra = tienTra;
            ConLai = conlai;
        }
    }

    /// <summary>
    /// Class Sản phẩm
    /// </summary>
    public class SanPham_DTO : ISoThuTu
    {
        public string MaSanPham { get; set; }

        public string TenSanPham { get; set; }

        public LoaiSanPham_DTO LoaiSP { get; set; }

        public string TenLoaiSanPham
        {
            get
            {
                if (LoaiSP == null)
                    return string.Empty;
                return LoaiSP.TenLoaiSanPham;
            }
        }

        public long DonGia { get; set; }

        public int SoLuongTon { get; set; }

        public long ThanhTien { get; set; }



        public SanPham_DTO(string masp, string tensp, string maloai, string tenLoai, long dongia, int sl)
        {
            MaSanPham = masp;
            TenSanPham = tensp;
            LoaiSP = new LoaiSanPham_DTO(maloai, tenLoai);
            DonGia = dongia;
            SoLuongTon = sl;
        }
    }

    /// <summary>
    /// Class Thợ
    /// </summary>
    public class Tho_DTO :ISoThuTu
    {
        public string MaTho { get; set; }

        public string TenTho { get; set; }

        public string DiaChi { get; set; }

        public Tho_DTO(string matho, string tentho, string diachi)
        {
            MaTho = matho;
            TenTho = tentho;
            DiaChi = diachi;
        }
    }
}
